<?php
// +----------------------------------------------------------------------
// | IPHP
// +----------------------------------------------------------------------
// | This is an open source and simple PHP FrameWork.
// +----------------------------------------------------------------------
// | $Id$
// +----------------------------------------------------------------------

// 入口文件文件
ini_set('display_errors','On');

// 定义类文件后缀名
const CLASS_EXT = ".class.php";

defined('IN_IPHP')              || define('IN_IPHP', true);

// 框架目录
defined('IPHP_PATH')            || define('IPHP_PATH', __DIR__.'/');
// 设置时间，默认为中国
defined('TIME_ZONE')            || define('TIME_ZONE', "Asia/Chongqing");
// 定义项目根目录
define('IS_CGI', substr(PHP_SAPI, 0,3) == 'cgi' ? 1 : 0);
define('IS_CLI', PHP_SAPI == 'cli'? 1 : 0);
// 当前文件名
if(!defined('_PHP_FILE_')) {
    if(IS_CGI) {
        //CGI/FASTCGI模式下
        $_temp  = explode('.php',$_SERVER['PHP_SELF']);
        define('_PHP_FILE_',    rtrim(str_replace($_SERVER['HTTP_HOST'],'',$_temp[0].'.php'),'/'));
    }else {
        define('_PHP_FILE_',    rtrim($_SERVER['SCRIPT_NAME'],'/'));
    }
}
if(!defined('__ROOT__')) {
    $_root  =   rtrim(dirname(_PHP_FILE_),'/');
    define('__ROOT__',  (($_root=='/' || $_root=='\\')?'':$_root));
}

// 检测是否SAE
if(function_exists('saeautoloader')){
    defined('IS_SAE')           || define('IS_SAE',true);
} else {
    defined('IS_SAE')           || define('IS_SAE',false);
}


defined('ROOT_PATH')            || define('ROOT_PATH', dirname($_SERVER['SCRIPT_FILENAME']).'/');
// 定义应用目录
defined('APP_PATH')             || define('APP_PATH', ROOT_PATH.'App/');
// 模块绑定
defined('BIND_MODULE')          || define('BIND_MODULE', false);

// 定义配置文件目录,默认为项目根目录下面
defined('CONF_PATH')            || define('CONF_PATH', APP_PATH);
// 定义程序公共函数目录,默认为项目根目录下面的function.php
defined('FUNC_PATH')            || define('FUNC_PATH', APP_PATH);
// 定义缓存目录
if(IS_SAE) {
    defined('CACHE_PATH')           || define('CACHE_PATH','');
} else {
    defined('CACHE_PATH')           || define('CACHE_PATH',ROOT_PATH.'Cache/');
}

// 调试模式
defined('APP_DEBUG')            || define('APP_DEBUG', true);
// 定义报错级别
APP_DEBUG ? error_reporting(E_ALL^E_NOTICE) : error_reporting(0);

// 加载核心函数
require_once IPHP_PATH.'function.php';
// 加载应用函数
if(file_exists(FUNC_PATH.'function.php')) include_once FUNC_PATH.'function.php';

// 禁止直接访问框架
!defined('IN_IPHP') && exit('Access Denied'); 

// 引入核心
require_once IPHP_PATH.'Core/App'.CLASS_EXT;
$app = IPHP\Core\App::getInstance();
$app->Run();